package com.yuandian.customer.perception.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.api.customer_perception.po.BasePortraitParams;
import com.yuandian.api.customer_perception.vo.OperatorActiveTrendVo;
import com.yuandian.api.customer_perception.vo.OperatorProcessCountTop5VO;
import com.yuandian.api.customer_perception.vo.TimeConsumingTop5;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 单位画像
 *
 * @author lixin
 * @since 2022-04-24
 */
@Repository
public interface UnitPortraitMapper {

	/**
	 * 单位画像-单位操作员办理排行TOP5
	 * @param params			请求参数
	 * @param itemChangeTable	表名
	 * @return					结果集
	 */
    List<OperatorProcessCountTop5VO> queryOperatorBusinessProcessCountTop5(@Param("params") BasePortraitParams params,
																		   @Param("itemChangeTable") String itemChangeTable);
    /**
     * 单位画像-单位操作员活跃时段-按小时划分
     *
     * @param params		请求参数
     * @return				结果集
     */
    List<OperatorActiveTrendVo> queryOperatorActiveHDuration(@Param("tableName") String tableName, @Param("params") BasePortraitParams params);

    /**
     * 单位画像-单位操作员活跃时段-按天划分
     *
     * @param params		请求参数
     * @return				结果集
     */
    List<OperatorActiveTrendVo> queryOperatorActiveDDuration(@Param("tableNames") List<String> tableNames, @Param("params") BasePortraitParams params);

    /**
     * 单位画像-获取某一天指定时间范围登陆信息,去重之后
     */
    List<OperatorActiveTrendVo> queryOperatorActiveList(@Param("tableName") String tableName, @Param("params") BasePortraitParams params
            , Page<OperatorActiveTrendVo> page);


    /**
     * 单位画像-活跃操作员人数
     */
    Integer queryActiveOperationcount(@Param("params") BasePortraitParams params);

    /**
     * 单位画像-单位操作员事项操作平均耗时最长排行(TOP5)
     */
    List<TimeConsumingTop5> queryMatterByLongestProcessTimeTop5(@Param("params") BasePortraitParams params);

    /**
     * 单位画像-单位操作员事项操作平均耗时最短排行(TOP5)
     */
    List<TimeConsumingTop5> queryMatterByShortestProcessTimeTop5(@Param("params") BasePortraitParams params);
}
